package cn.lovemmd.model.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 模型视图对象
 * 
 * @author TLS
 * @since 2024-01-01
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ModelVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 模型ID
     */
    private Integer mId;

    /**
     * 模型名称
     */
    private String mName;

    /**
     * 模型职业
     */
    private String mOccupation;

    /**
     * 模型职业中文名称
     */
    private String mOccupationName;

    /**
     * 模型下载链接
     */
    private String mUrl;

    /**
     * 模型图片链接
     */
    private String mImg;

    /**
     * 模型来源
     */
    private String mModelSource;

    /**
     * 骨骼绑定
     */
    private String mBoneBinding;

    /**
     * 物理绑定
     */
    private String mPhysicsBinding;

    /**
     * 表情制作
     */
    private String mExpressionMaking;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 获取职业中文名称
     */
    public String getMOccupationName() {
        if (mOccupation == null) {
            return "";
        }
        switch (mOccupation) {
            case "bladePoint":
                return "刀锋";
            case "Flame":
                return "烈焰";
            case "doubleGun":
                return "双枪";
            case "machineGun":
                return "机枪";
            case "guidedMissile":
                return "导弹";
            case "sniper":
                return "狙击";
            case "medic":
                return "医生";
            case "grenade":
                return "榴弹";
            case "engineer":
                return "工程师";
            default:
                return mOccupation;
        }
    }

    // Getter and Setter methods
    public Integer getMId() {
        return mId;
    }

    public void setMId(Integer mId) {
        this.mId = mId;
    }

    public String getMName() {
        return mName;
    }

    public void setMName(String mName) {
        this.mName = mName;
    }

    public String getMOccupation() {
        return mOccupation;
    }

    public void setMOccupation(String mOccupation) {
        this.mOccupation = mOccupation;
    }

    public String getMUrl() {
        return mUrl;
    }

    public void setMUrl(String mUrl) {
        this.mUrl = mUrl;
    }

    public String getMImg() {
        return mImg;
    }

    public void setMImg(String mImg) {
        this.mImg = mImg;
    }

    public String getMModelSource() {
        return mModelSource;
    }

    public void setMModelSource(String mModelSource) {
        this.mModelSource = mModelSource;
    }

    public String getMBoneBinding() {
        return mBoneBinding;
    }

    public void setMBoneBinding(String mBoneBinding) {
        this.mBoneBinding = mBoneBinding;
    }

    public String getMPhysicsBinding() {
        return mPhysicsBinding;
    }

    public void setMPhysicsBinding(String mPhysicsBinding) {
        this.mPhysicsBinding = mPhysicsBinding;
    }

    public String getMExpressionMaking() {
        return mExpressionMaking;
    }

    public void setMExpressionMaking(String mExpressionMaking) {
        this.mExpressionMaking = mExpressionMaking;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
}
